<?php
/**
 * Description of Laag
 * @author Nick Swartele
 *
 * Deze Applicatie klasse handelt alles van bedrijfslagen af.
 * 
 * @todo Het afmaken van deze klasse naar het ontwerp. Applicatie kant is klaar, DB moet nog gedaan worden incl. controles.
 */

require_once 'db/DbLaag.php';

class Laag {
  
    //Attributen
    private $id = '';
    private $parent_id = '';
    private $beschrijving = '';
    private $change_id = '';
    private $error_count = '';
    
    public function __construct(){
        
    }
       
    //Getters
     public function getId(){
        return $this->id;
    }
    
     public function getParent_id() {
        return $this->parent_id;
    }
    
     public function getBeschrijving() {
        return $this->beschrijving;
    }
    
     public function getChange_id() {
        return $this->change_id;
    }
    
     public function getChange_ts() {
        return $this->change_ts;
    }

    //Setters
    public function setId($id){
        if ($this->controle->checkInt($id, DB_NUMBER_REGISTRATIE_MAXIMUM, MINIMUM_ALGEMEEN)) {
            $this->id = $id;
        } else {
            $this->error_count++;
            echo WHITE_SPACE_ENTER;
            echo VOER_EEN_GELDIG_ID_IN;
        }
    }
    
    public function setParent_id($parent_id) {
        if ($this->controle->checkInt($parent_id, DB_NUMBER_REGISTRATIE_MAXIMUM, MINIMUM_ALGEMEEN)) {
            $this->parent_id = $parent_id;
        } else {
            $this->error_count++;
            echo WHITE_SPACE_ENTER;
            echo VOER_EEN_GELDIG_ID_IN;
        }
    }

    public function setBeschrijving($beschrijving) {
        if ($this->controle->checkString($beschrijving, DB_TEXT_OMSCHRIJVING, MINIMUM_ALGEMEEN)) {
            $this->beschrijving = $beschrijving;
        } else {
            $this->error_count++;
            echo WHITE_SPACE_ENTER;
            echo VOER_EEN_GELDIGE_OMSCHRIJVING_IN;
        }
    }
    
    public function setChange_id($change_id) {
        if ($this->controle->checkInt($change_id, DB_NUMBER_REGISTRATIE_MAXIMUM, MINIMUM_ALGEMEEN)) {
            $this->change_id = $change_id;
        } else {
            $this->error_count++;
            echo WHITE_SPACE_ENTER;
            echo VOER_EEN_GELDIG_ID_IN;
        }
    }
    
    public function checkError() {
        if($this->error_count != 0) {
            echo WHITE_SPACE_ENTER;
            echo GUI_FOUTEN_GEVONDEN_ERROR;
        } else {
            echo WHITE_SPACE_ENTER;
            echo GUI_GEEN_FOUTEN_GEVONDEN_ERROR;
            $new = new Laag();
            $new->newLaag();
        }
    }

    public function setChange_ts($change_ts) {
        $this->change_ts = $change_ts;
    }
    
    //Maakt een nieuwe laag in de DB
    public function newLaag($parent_id, $beschrijving, $change_id){
        $new = new DbLaag();
        $new->save($parent_id, $beschrijving, $change_id);
    }
    
    //Update de laag
    public function updLaag($id, $parent_id, $beschrijving, $change_id){
        $upd = new DbLaag();
        $upd->update($id, $parent_id, $beschrijving, $change_id);
    }
    
    //Delete de laag 
    public function delLaag(){
        $del = new DbLaag();
        $del->delete($this->getId());
    }
    
    //Haalt ALLE lagen op
    public function overzichtLaag(){
        $overzicht = new DbLaag();           
        $data_array = $overzicht->selectAll();
       
          if ($data_array == FALSE){
                return FALSE;
          }
        else { 
                return $data_array;
        }
    }
    
    
    //Haalt 1 laag op
    public function selectLaag(){
        $select = new DbLaag();
        $select->select();
    }
    
    //Haalt naam op aan de hand van ID
    public function getNameById($id){
        $name = new DbLaag();
        $name->getNameById($id);
    }
    
    //Haalt ID op aan de hand van naam
    public function getIdByName($beschrijving){
        $id = new DbLaag();
        $id->getIdByName($beschrijving);
    }
}

?>
